#include<iostream>

using namespace std;
const int N = 100010;

int m;
int stk[N], tt;

//插入
void push(int x){
    stk[++ tt] = x;
}
//弹出
void pop(){
    tt --;
}
//判断
bool empty(){
    if(tt > 0) return false;
    return true;
}
//查询栈顶
int query(){
    return stk[tt];
}

int main(){
    cin >> m;
    while(m --){
        string op;
        cin >> op;
        if(op == "push"){
            int x;
            cin >> x;
            push(x);
        }
        else if(op == "query") cout << query() << endl;
        else if(op == "pop") pop();
        else{
            if(!empty()) cout << "NO" << endl;
            else cout << "YES" << endl;
        }
    }
    return 0;
}